﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sisco.AplicacionEscritorio.Reporte.DataSet;
using Sisco.AplicacionEscritorio.Reporte.Plantillas.Equipo;
using Sisco.AplicacionEscritorio.Reporte.Plantillas.Problema;
using Sisco.AplicacionEscritorio.Reporte.Plantillas.Usuario;

namespace Sisco.AplicacionEscritorio.Reporte
{
    public partial class FormularioReporte : Form
    {
        public FormularioReporte()
        {
            InitializeComponent();
        }

        private void FormularioReporte_Load(object sender, EventArgs e)
        {
            //this.reportViewer1.RefreshReport();
            this.repGeneral.Clear();
            treeReportes.ExpandAll();
        }

        private void treeReportes_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (treeReportes.SelectedNode != null)
            {
                repGeneral.Clear();

                switch (treeReportes.SelectedNode.Name)
                {
                    case "node_Equipo_1":
                        FormatoGeneral_Equipo iuEquipoGeneral = new FormatoGeneral_Equipo();
                        if (!tableReportes.Controls.ContainsKey("FormatoGeneral_Equipo"))
                        {
                            Panel PanelContent = tableReportes.Controls["PanelContenedor"] as Panel;
                            PanelContent.Controls.Clear();
                            PanelContent.Controls.Add(iuEquipoGeneral);
                        }
                        break;
                    case "node_Indicador_1":
                        break;
                    case "node_Problema_1":
                        FormatoGeneral_Problema iuProblemaGeneral = new FormatoGeneral_Problema();
                        if (!tableReportes.Controls.ContainsKey("FormatoGeneral_Problema"))
                        {
                            Panel PanelContent = tableReportes.Controls["PanelContenedor"] as Panel;
                            PanelContent.Controls.Clear();
                            PanelContent.Controls.Add(iuProblemaGeneral);
                        }
                        break;
                    case "node_Usuario_1":
                        FormatoGeneral_Usuario iuUsuarioGeneral = new FormatoGeneral_Usuario();
                        if (!tableReportes.Controls.ContainsKey("FormatoGeneral_Usuario"))
                        {
                            Panel PanelContent = tableReportes.Controls["PanelContenedor"] as Panel;
                            PanelContent.Controls.Clear();
                            PanelContent.Controls.Add(iuUsuarioGeneral);
                        }
                        break;
                }
            }
        }

        internal void showRep_FormatoGeneral_Problema(DataTable dTable)
        {
            if (dTable != null)
            {
                SiscoDataSet.usp_listar_Problema_RepDataTable dt = new SiscoDataSet.usp_listar_Problema_RepDataTable();

                foreach (DataRow row in dTable.Rows)
                {
                    dt.Rows.Add(row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString(), row[5].ToString(),
                                 row[6].ToString(), row[7].ToString(), row[8].ToString(), row[9].ToString(), row[10].ToString());
                }

                repGeneral.Reset();
                repGeneral.LocalReport.ReportEmbeddedResource = "Sisco.AplicacionEscritorio.Reporte.Plantillas.Problema.FormatoGeneral_Problema.rdlc";
                repGeneral.LocalReport.DataSources.Clear();
                repGeneral.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ds_ListarProblema_RepGeneral", dt.ToList()));
                repGeneral.RefreshReport();
            }
        }

        internal void showRep_FormatoGeneral_Usuario(DataTable dTable)
        {
            if (dTable != null)
            {
                SiscoDataSet.usp_Listar_Usuario_RepDataTable dt = new SiscoDataSet.usp_Listar_Usuario_RepDataTable();

                foreach (DataRow row in dTable.Rows)
                {
                    dt.Rows.Add(row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(),
                                row[4].ToString(), row[5].ToString(), row[6].ToString());
                }

                repGeneral.Reset();
                repGeneral.LocalReport.ReportEmbeddedResource = "Sisco.AplicacionEscritorio.Reporte.Plantillas.Usuario.FormatoGeneral_Usuario.rdlc";
                repGeneral.LocalReport.DataSources.Clear();
                repGeneral.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ds_ListarUsuario_RepGeneral",dt.ToList()));
                repGeneral.RefreshReport();
            }
        }

        internal void showRep_FormatoGeneral_Equipo(DataTable dTable)
        {
            if (dTable != null)
            {
                SiscoDataSet.usp_ListarEquipo_RepDataTable dt = new SiscoDataSet.usp_ListarEquipo_RepDataTable();

                foreach (DataRow row in dTable.Rows)
                {
                    dt.Rows.Add(row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(),
                                row[4].ToString(), row[5].ToString(), row[6].ToString());
                }

                repGeneral.Reset();
                repGeneral.LocalReport.ReportEmbeddedResource = "Sisco.AplicacionEscritorio.Reporte.Plantillas.Equipo.FormatoGeneral_Equipo.rdlc";
                repGeneral.LocalReport.DataSources.Clear();
                repGeneral.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ds_ListarEquipo_RepGeneral", dt.ToList()));
                repGeneral.RefreshReport();
            }
        }
    }
}
